home *** CD-ROM | disk | FTP | other *** search
- /* ver.c -- set/increment project version */
-
- #include <stdio.h>
- #include <stdlib.h>
-
- int main(int argc, char **argv)
- {
- FILE *f;
- char verstr[32];
- char *name = NULL;
- int ver = 0, rev = 0, newver = -1, newrev = -1, nobump = 0;
- int i, usage = 0;
-
- for (i=1; i<argc; i++)
- {
- if (argv[i][0] == '-')
- {
- switch (argv[i][1])
- {
- case 'v':
- if (argv[i+1])
- newver = atoi(argv[++i]);
- else
- usage = 1;
- break;
- case 'r':
- if (argv[i+1])
- newrev = atoi(argv[++i]);
- else
- usage = 1;
- break;
- case 'f':
- if (argv[i+1])
- name = argv[++i];
- else
- usage = 1;
- break;
- case 'n':
- nobump = 1;
- break;
- default:
- usage = 1;
- }
- }
- else
- usage = 1;
- }
- if (usage)
- {
- fprintf(stderr,"Usage: %s [-n] [-v version] [-r revision] [-f file]\n", argv[0]);
- exit(10);
- }
-
- if (!name)
- name = "VERSION";
-
- if (f=fopen(name,"r"))
- {
- fgets(verstr,32,f);
- sscanf(verstr,"%d.%d",&ver,&rev);
- fclose(f);
- }
-
- if (newver != -1)
- ver = newver;
-
- if (newrev != -1)
- rev = newrev;
- else
- if (!nobump)
- rev++;
-
- if (f=fopen(name,"w"))
- {
- fprintf(f,"%d.%d\n",ver,rev);
- fclose(f);
- }
- else
- {
- fprintf(stderr,"Error creating file %s.\n",name);
- exit(20);
- }
- }